package controller

//
//import (
//	"GoTime/models"
//	"GoTime/utils/logs"
//	"bytes"
//	"encoding/hex"
//	"fmt"
//	"errors"
//	"github.com/gin-gonic/gin"
//	"go.uber.org/zap"
//	"io/ioutil"
//	"log"
//	"math"
//	"net/http"
//	"strconv"
//	"strings"
//	"time"
//	"xorm.io/builder"
//)
//
//// ParseRequest 解析请求内容，验证签名并获取相关数据
//func ParseRequest(c *gin.Context) (map[string]interface{}, error) {
//	var (
//		sign []byte // 签名字节数组
//		err  error  // 错误信息
//		user string // 用户标识
//	)
//
//	// 创建请求数据映射
//	req_map := make(map[string]interface{})
//
//	// 读取请求体内容并绑定到req_map
//	if err = c.ShouldBindJSON(&req_map); err != nil {
//		defer c.Request.Body.Close()
//		body, err := ioutil.ReadAll(c.Request.Body)
//		if err != nil {
//			logs.ZapLogs.Error("readall", zap.Error(err))
//			return nil, err
//		}
//		logs.ZapLogs.Error("ShouldBindJSON", zap.String("readbody", string(body)), zap.String("requestURL", c.Request.RequestURI))
//		return nil, err
//	}
//
//	fmt.Println(req_map)
//
//	// 获取数据部分
//	md, ok := req_map["data"].(map[string]interface{})
//	if !ok {
//		logs.ZapLogs.Error("data not map", zap.Any("data", req_map))
//		return nil, errors.New("数据格式错误")
//	}
//
//	// 构建过滤条件并获取学校信息
//	filter := builder.NewCond()
//	var list []*models.School
//	if md["inscode"] != nil && len(fmt.Sprintf("%v", md["inscode"])) > 0 {
//		institutionCode := md["inscode"].(string)
//		filter = filter.And(builder.Eq{"institution_code": institutionCode})
//		list, err = new(models.School).GetSchoolByFilter(filter)
//		if err != nil {
//			logs.ZapLogs.Error("GetSchoolByFilter", zap.Error(err), zap.Any("code", institutionCode))
//			return nil, errors.New("培训机构不存在")
//		}
//	} else if md["stunum"] != nil && len(fmt.Sprintf("%v", md["stunum"])) > 0 {
//		stunum := md["stunum"].(string)
//		studentlist, err := new(models.Student).GetListByCode(stunum)
//		if err != nil {
//			logs.ZapLogs.Error("GetListByCode", zap.Error(err), zap.Any("data", req_map), zap.String("ip", c.ClientIP()), zap.String("url", c.Request.RequestURI))
//			return nil, errors.New("该学员不存在")
//		}
//		filter = filter.And(builder.Eq{"id": studentlist.SchoolId})
//		list, err = new(models.School).GetSchoolByFilter(filter)
//		if err != nil {
//			logs.ZapLogs.Error("GetSchoolByFilter", zap.Error(err), zap.Any("data", req_map))
//			return nil, errors.New("培训机构不存在")
//		}
//	} else {
//		logs.ZapLogs.Error("data missing", zap.Any("data", req_map))
//		return nil, errors.New("缺少必要的数据字段")
//	}
//
//	// 检查学校列表
//	if len(list) > 1 {
//		logs.ZapLogs.Error("multiple_schools", zap.Any("data", req_map))
//		return nil, errors.New("系统异常：获取到多个驾校信息")
//	} else if len(list) == 0 {
//		logs.ZapLogs.Error("no_school_found", zap.Any("data", req_map))
//		return nil, errors.New("系统异常：未找到驾校信息")
//	}
//
//	fmt.Println("#########")
//	fmt.Println(len(list))
//
//	// 获取学校信息
//	school := list[0]
//
//	// 如果省份为贵州（520000），直接返回解析后的请求内容
//	if school.Province == "520000" {
//		fmt.Println("22222")
//		return req_map, nil
//	}
//
//	// 如果省份为河北（130000），记录请求日志
//	if school.Province == "130000" {
//		body, err := ioutil.ReadAll(c.Request.Body)
//		if err != nil {
//			logs.ZapLogs.Error("readall", zap.Error(err), zap.Any("request", req_map))
//			return nil, err
//		}
//		defer c.Request.Body.Close()
//		logs.ZapLogs.Info("reviemsg", zap.String("request_url", c.Request.RequestURI), zap.String("body", string(body)), zap.Any("params", req_map))
//	}
//
//	// 获取签名参数
//	if sign, err = hex.DecodeString(c.Query("sign")); err != nil {
//		fmt.Println(err.Error())
//		logs.ZapLogs.Error("DecodeString", zap.Error(err))
//		return nil, err
//	}
//
//	fmt.Println(sign)
//
//	// 设置用户标识
//	if school.Province == "130000" || school.Province == "510000" {
//		user = "common"
//	} else if school.Province == "450000" {
//		user = "guangxi"
//	} else {
//		user = c.Query("user")
//	}
//
//	fmt.Println(user)
//
//	// 验证签名（注释掉的代码可以恢复使用）
//	// if err = Verify(temp, timestamp, sign, c.Query("v"), user); err != nil {
//	//     fmt.Println(err.Error())
//	//     return nil, errors.New("凭证非法")
//	// }
//
//	return req_map, nil
//}
//
//// ReviewMsg 审核结果消息通知接口
//func ReviewMsg(c *gin.Context) {
//	var (
//		field         *models.Field          // 教学区域字段指针
//		school        models.School          // 学校信息结构体
//		student       *models.Student        // 学员信息指针
//		reason        string                 // 需补学时的原因
//		url           string                 // 请求的URL
//		ret_map       map[string]interface{} // 上级服务器返回的数据
//		err           error                  // 错误信息
//		pdfid         int64                  // PDF文件的ID
//		result_status string                 // 审核结果状态
//		req_type      int64                  // 请求类型
//		has           bool                   // 是否存在标志
//	)
//
//	// 解析请求参数
//	req_map, _ := ParseRequest(c)
//	reviewtype := fmt.Sprint(req_map["reviewtype"]) // 获取审核类型 1: 教学区域 2: 阶段培训记录
//
//	// 检查请求数据是否存在
//	md, ok := req_map["data"].(map[string]interface{})
//	if !ok {
//		Response(c, 0, "类型错误", nil) // 返回类型错误
//		return
//	}
//
//	// 根据机构代码获取学校信息
//	institutionCode := md["inscode"].(string)
//	has, school, err = new(models.School).GetSchoolByInstitution_code(institutionCode)
//	if !has || err != nil {
//		logs.ZapLogs.Error("GetSchoolByInstitution_code", zap.Error(err), zap.Any("data", req_map), zap.String("url", c.Request.RequestURI))
//		Response(c, 1, "教学区域不存在", nil) // 返回教学区域不存在
//		return
//	}
//
//	// 根据城市设置请求类型
//	if school.City == "130100" {
//		req_type = 3
//	} else {
//		req_type = 2
//	}
//
//	switch reviewtype {
//	case "1":
//		// 获取教学区域序列号
//		seq := md["seq"].(string)
//		// 构建过滤条件
//		filter := builder.Eq{"field_code": seq}.And(builder.Eq{"school_id": school.Id})
//		// 根据过滤条件获取教学区域信息
//		field, err = new(models.Field).GetFieldByFilter(filter)
//		if err != nil || field.Id == 0 {
//			logs.ZapLogs.Error("GetFieldByFilter", zap.Error(err), zap.Any("data", req_map), zap.String("url", c.Request.RequestURI))
//			Response(c, 1, "教学区域不存在", nil) // 返回教学区域不存在
//			return
//		}
//
//		// 获取签名URL
//		if url, err = GetSignURL(fmt.Sprintf("%s-regionreview-%s", institutionCode, field.FieldCode), nil, req_type, school.Province, c.PostForm("city")); err != nil {
//			logs.ZapLogs.Error("GetSignURL", zap.Error(err))
//			Response(c, 1, "签名失败", nil) // 返回签名失败
//			return
//		}
//
//		// 请求上级服务器
//		ret_map, err = APIReq(url, nil, "GET")
//		if err != nil {
//			result, _ := json.Marshal(ret_map)
//			api_log := models.ApiLog{
//				Url:    url,
//				Param:  "",
//				Method: "POST",
//				Time:   time.Now(),
//				Result: string(result),
//			}
//			api_log.Add()
//			logs.ZapLogs.Error("APIReq", zap.Error(err))
//			Response(c, 1, "请求上级服务器失败", nil) // 返回请求上级服务器失败
//			return
//		}
//
//		// 记录省份为130000的日志
//		if school.Province == "130000" {
//			logs.ZapLogs.Info("apirequest", zap.String("api_url", url), zap.Any("result", ret_map))
//		}
//
//		// 处理教学区域审核结果
//		handleReviewResponse(c, md, field, school, ret_map)
//
//	case "2":
//		// 获取学员编号
//		stunum := md["stunum"].(string)
//		// 构建过滤条件
//		filter := builder.Eq{"st.institution_code": stunum}
//		// 根据过滤条件获取学员信息
//		student, err = new(models.Student).GetStudentByFilter(filter)
//		if err != nil || student.Id == 0 {
//			logs.ZapLogs.Error("GetStudentByFilter", zap.Error(err), zap.Any("stunum", stunum))
//			Response(c, 1, "学员信息不存在", nil) // 返回学员信息不存在
//			return
//		}
//
//		// 根据学校ID获取学校信息
//		schoolId := student.SchoolId
//		school, err = models.GetSchoolBySid(schoolId)
//		if err != nil {
//			logs.ZapLogs.Error("GetSchoolBySid", zap.Error(err), zap.Any("student_id", student.Id), zap.Any("stunum", stunum))
//			Response(c, 1, "培训结构信息不存在", nil) // 返回培训结构信息不存在
//			return
//		}
//
//		// 获取签名URL
//		subject := fmt.Sprint(md["subject"])
//		if url, err = GetSignURL(fmt.Sprintf("%s-stagetrainningtimereview-%s", stunum, subject), nil, req_type, school.Province, school.City); err != nil {
//			logs.ZapLogs.Error("GetSignURL", zap.Error(err))
//			Response(c, 1, "签名失败", nil) // 返回签名失败
//			return
//		}
//
//		// 请求上级服务器
//		ret_map, err = APIReq(url, nil, "GET")
//		if err != nil {
//			result, _ := json.Marshal(ret_map)
//			api_log := models.ApiLog{
//				Url:    url,
//				Param:  "",
//				Method: "POST",
//				Time:   time.Now(),
//				Result: string(result),
//			}
//			api_log.Add()
//			logs.ZapLogs.Error("APIReq", zap.Error(err))
//			Response(c, 1, "请求上级服务器失败", nil) // 返回请求上级服务器失败
//			return
//		}
//
//		// 处理阶段记录审核结果
//		handleStageReviewResponse(c, md, student, school, ret_map)
//
//	default:
//		Response(c, 0, "类型错误", nil) // 返回类型错误
//		return
//	}
//}
//
//// 处理教学区域审核结果
//func handleReviewResponse(c *gin.Context, md map[string]interface{}, field *models.Field, school models.School, ret_map map[string]interface{}) {
//	// 获取错误码
//	errorcode, _ := GetFloat64(ret_map["errorcode"])
//	if errorcode != 0 {
//		// 如果错误码为1且消息为"该区域未审核"
//		if errorcode == 1 && ret_map["message"].(string) == "该区域未审核" {
//			field.ApprovalStatus = "2"
//			// 更新数据库中的教学区域审批状态
//			if !field.Update("approval_status") {
//				logs.ZapLogs.Error("field.Update", zap.Error(err))
//				Response(c, 1, "数据库更新失败", nil) // 返回数据库更新失败
//				return
//			}
//			Response(c, 0, "查询审核结果成功", nil) // 返回查询审核结果成功
//			return
//		}
//		Response(c, 1, ret_map["message"].(string), nil) // 返回上级服务器返回的错误消息
//		return
//	}
//
//	// 检查返回的数据是否存在
//	md, ok = ret_map["data"].(map[string]interface{})
//	if !ok {
//		Response(c, 1, "上级服务器返回异常", nil) // 返回上级服务器返回异常
//		return
//	}
//
//	// 获取标志位
//	flag, _ := GetFloat64(md["flag"])
//	if flag == 1 {
//		field.ApprovalStatus = "1" // 同意启用
//	} else {
//		field.ApprovalStatus = "2" // 不同意启用
//	}
//
//	// 更新数据库中的教学区域审批状态
//	if !field.Update("approval_status") {
//		Response(c, 1, "数据库更新失败", nil) // 返回数据库更新失败
//		return
//	}
//
//	Response(c, 0, "查询审核结果成功", nil) // 返回查询审核结果成功
//}
//
//// 处理阶段记录审核结果
//func handleStageReviewResponse(c *gin.Context, md map[string]interface{}, student *models.Student, school models.School, ret_map map[string]interface{}) {
//	// 获取错误码
//	errorcode, _ := GetFloat64(ret_map["errorcode"])
//	if errorcode != 0 {
//		Response(c, 1, ret_map["message"].(string), nil) // 返回上级服务器返回的错误消息
//		return
//	}
//
//	// 如果省份为510000，构建需补学时的原因
//	if school.Province == "510000" {
//		reason = buildReasonFromMessage(ret_map["message"].(string))
//	}
//
//	// 检查返回的数据是否存在
//	md, ok = ret_map["data"].(map[string]interface{})
//	if !ok {
//		Response(c, 1, "上级服务器返回异常", nil) // 返回上级服务器返回异常
//		return
//	}
//
//	// 获取有效标志和审核结果状态
//	valid := cast.ToFloat64(md["valid"])
//	if school.Province == "360000" {
//		result_status = cast.ToString(md["islastcheck"])
//	} else {
//		result_status = cast.ToString(md["ischeck"])
//	}
//
//	if valid == 1 || result_status == "1" {
//		// 根据审核结果构建学生数据
//		data := buildStudentDataFromReviewResult(md, student.Id)
//		// 更新学员信息
//		if _, err := new(models.Student).StudentEdit(fmt.Sprintf("%d", student.Id), data); err != nil {
//			logs.ZapLogs.Error("StudentEdit", zap.Error(err), zap.Any("data", data), zap.String("student_id", fmt.Sprintf("%d", student.Id)), zap.Any("md", md))
//			Response(c, 1, err.Error(), "") // 返回数据库更新失败
//			return
//		}
//
//		// 处理特殊省份的特殊情况
//		handleSpecialCases(c, md, student, school, reason, pdfid)
//	}
//
//	Response(c, 0, "查询审核结果成功", nil) // 返回查询审核结果成功
//}
//
//// 构建需补学时原因
//func buildReasonFromMessage(message string) string {
//	// 去掉最后一个字符并按逗号分割字符串
//	stringMap := strings.Split(utils.Substr(message, 0, len(message)-1), ",")
//	ret := ""
//	for _, v := range stringMap {
//		title := utils.Substr(v, 0, 2)
//		needminute := utils.Substr(v, 3, len(v)-3)
//		con := fmt.Sprintf(`"%s" 需补学时：%s分钟`, Content[title], needminute) // 格式化字符串
//		ret += con + ", "
//	}
//	return strings.Trim(ret, ", ") // 去掉末尾的逗号和空格
//}
//
//// 根据审核结果构建学生数据
//func buildStudentDataFromReviewResult(md map[string]interface{}, studentId int) map[string]interface{} {
//	data := make(map[string]interface{})
//	valid := cast.ToFloat64(md["valid"])
//	if valid == 1 {
//		subject := cast.ToString(md["subject"])
//		switch subject {
//		case "1":
//			data["status"] = "2"
//			data["subject1isreport"] = "1"
//		case "2":
//			data["status"] = "3"
//			data["subject2isreport"] = "1"
//		case "3":
//			data["status"] = "4"
//			data["subject3isreport"] = "1"
//		case "4":
//			data["subject4isreport"] = "1"
//		case "99":
//			data["subject3isreport"] = "1"
//			data["status"] = "4"
//		}
//	}
//	return data
//}
//
//// 处理特殊省份的特殊情况
//func handleSpecialCases(c *gin.Context, md map[string]interface{}, student *models.Student, school models.School, reason string, pdfid int64) {
//	studentId := fmt.Sprintf("%d", student.Id)
//
//	// 如果省份为520000且操作状态为11或12
//	if school.Province == "520000" && (student.OperationStatus == "11" || student.OperationStatus == "12") {
//		// 处理特殊状态
//		return
//	}
//
//	// 如果省份为360000且科目为4且有效
//	if school.Province == "360000" && fmt.Sprintf("%v", md["subject"]) == "4" && valid == 1 {
//		user, err := new(models.User).GetById(cast.ToString(student.UserId))
//		if err != nil {
//			return
//		}
//		// 推送学员信息到智能部门
//		Push(user.IdNumber, cast.ToString(md["subject"]))
//		// 处理贵州省的学员毕业逻辑
//		if err = Graduationguizhou(student.Id); err != nil {
//			logs.ZapLogs.Error("Graduationguizhou", zap.Error(err), zap.Any("data", md), zap.String("url", c.Request.RequestURI))
//			Response(c, 1, err.Error(), "") // 返回修改状态失败
//			return
//		}
//		// 修改学员状态为6
//		if _, err = student.StudentEdit(studentId, map[string]interface{}{"status": 6}); err != nil {
//			logs.ZapLogs.Error("StudentEdit", zap.Error(err), zap.Any("data", md), zap.String("url", c.Request.RequestURI), zap.String("ip", c.ClientIP()))
//			Response(c, 1, "修改状态失败", "") // 返回修改状态失败
//			return
//		}
//	}
//
//	// 如果省份为420000、340000、370000或610000
//	if school.Province == "420000" || school.Province == "340000" || school.Province == "370000" || school.Province == "610000" {
//		// 处理无效时间记录
//		handleInvalidTimeRecords(c, md, student, school, &reason)
//	} else {
//		// 处理非无效时间记录
//		handleNonInvalidTimeRecords(md, student, school, &reason)
//	}
//
//	// 如果地区为371600，推送学员信息到API
//	if school.District == "371600" {
//		user, _ := new(models.User).GetUserById(student.UserId)
//		pushData := map[string]interface{}{
//			"inscode":   school.InstitutionCode,
//			"sid":       student.Sid,
//			"idcard":    user.IdNumber,
//			"traintype": student.TrainingCarType,
//			"applydate": student.SignInTime.Format("20060102"),
//			"stage":     fmt.Sprint(md["subject"]),
//			"classid":   "264420",
//			"subjcode":  "3212010000",
//		}
//		// 异步推送API请求
//		go PushOpenApi(pushData, school.Province, school.City)
//	}
//
//	// 如果城市为371100，处理日照API请求
//	if school.City == "371100" {
//		handleSunriseApiRequest(c, md, student, school)
//	}
//
//	// 存储任务信息到数据库
//	saveTaskInfo(c, md, student, school, reason, pdfid)
//}
//
//// 处理无效时间记录
//func handleInvalidTimeRecords(c *gin.Context, md map[string]interface{}, student *models.Student, school models.School, reason *string) {
//	// 获取无效时间记录数组
//	record_array, ok := md["recarr"].([]interface{})
//	if !ok {
//		return
//	}
//
//	for _, record := range record_array {
//		record_map, ok := record.(map[string]interface{})
//		if !ok {
//			continue
//		}
//
//		rnum, ok := record_map["recnum"]
//		if !ok {
//			continue
//		}
//
//		var err error
//		// 根据省份更新学习记录
//		if school.Province == "420000" {
//			_, err = new(models.LearnRecord).EditLearnRecord(student.Id, utils.Substr(rnum.(string), 1, 4), map[string]interface{}{"reason": record_map["recheckreason"], "approval_status": 2})
//		} else {
//			_, err = new(models.LearnRecord).EditLearnRecord(student.Id, utils.Substr(rnum.(string), 1, 4), map[string]interface{}{"reason": record_map["recheckreason"]})
//		}
//		if err != nil {
//			Resp(c, 201, "修改状态失败", "") // 返回修改状态失败
//			return
//		}
//
//		// 构建需补学时的原因
//		*reason = strings.Trim(fmt.Sprintf("%s ,%s", *reason, record_map["recheckreason"].(string)), ",")
//	}
//}
//
//// 处理非无效时间记录
//func handleNonInvalidTimeRecords(md map[string]interface{}, student *models.Student, school models.School, reason *string) {
//	// 获取记录数组
//	record_array, ok := md["recordarr"].([]interface{})
//	if !ok {
//		return
//	}
//
//	for _, record := range record_array {
//		record_map, ok := record.(map[string]interface{})
//		if !ok {
//			continue
//		}
//
//		subject := fmt.Sprintf("%v", md["subject"])
//		if subject == "1" || subject == "4" {
//			rnum := record_map["recnum"]
//			// 根据省份更新学习记录
//			_, err := new(models.LearnRecord).EditLearnRecord(student.Id, rnum, map[string]interface{}{"reason": record_map["recheckreason"], "approval_status": "2"})
//			if err != nil {
//				logs.ZapLogs.Error("EditLearnRecord", zap.Error(err), zap.Any("data", md), zap.String("url", c.Request.RequestURI))
//				Response(c, 1, "修改状态失败", "") // 返回修改状态失败
//				return
//			}
//
//			// 构建需补学时的原因
//			*reason = strings.Trim(fmt.Sprintf("%s ,%s", *reason, record_map["recheckreason"].(string)), ",")
//		} else if subject == "2" || subject == "3" {
//			// 构建需补学时的原因
//			*reason = strings.Trim(fmt.Sprintf("%s ,%s", *reason, record_map["recheckreason"].(string)), ",")
//			fmt.Println("审核结果 ", record_map["recheckreason"])
//		}
//	}
//}
//
//// 处理日照API请求
//func handleSunriseApiRequest(c *gin.Context, md map[string]interface{}, student *models.Student, school models.School) {
//	// 获取学员阶段检查信息
//	ok, stage, _ := new(models.StageCheck).GetStudentStageCheckUserInfo(fmt.Sprintf("%d", student.SchoolId), fmt.Sprintf("%d", student.Id), fmt.Sprintf("%v", md["subject"]))
//	if !ok {
//		return
//	}
//
//	// 获取学员用户信息
//	user, _ := new(models.User).GetUserById(fmt.Sprintf("%d", student.UserId))
//	reqData := map[string]interface{}{
//		"secret":      "c7c4bb14-ec92-41d5-95b6-17c6aedfe69f",
//		"sfzmhm":      user.IdNumber,
//		"pxkm":        cast.ToInt(md["subject"]),
//		"pxxs":        cast.ToInt(math.Floor(cast.ToFloat64(md["duration"]) / 45)),
//		"pxjl":        260,
//		"coachCardno": stage.IdNumber,
//		"coachName":   stage.CoachName,
//		"khy":         stage.ExaminerName,
//		"khjg":        "合格",
//		"khrq":        stage.CheckTime,
//		"shrq":        time.Now().Format("2006-01-02"),
//		"pxcx":        student.TrainingCarType,
//		"inscode":     school.InstitutionCode,
//	}
//
//	// 构建HTTP请求
//	bytesData, _ := json.Marshal(reqData)
//	request, _ := http.NewRequest("POST", "http://58.59.43.35:9001/rzjp-api/trainingTime", bytes.NewBuffer(bytesData))
//	request.Header.Set("Content-Type", "application/json;charset=utf-8")
//	request.Header.Add("Secret", "c7c4bb14-ec92-41d5-95b6-17c6aedfe69f")
//
//	client := http.Client{}
//	resp, err := client.Do(request)
//	if err != nil {
//		logs.ZapLogs.Error("client.Do", zap.Error(err))
//		return
//	}
//	defer resp.Body.Close()
//
//	utils.Logfile(string(bytesData), "log.rizhao.log")
//	log.Println(resp.StatusCode)
//
//	if resp.StatusCode == 200 {
//		body, _ := ioutil.ReadAll(resp.Body)
//		rep_data, _ := cast.ToStringMapE(string(body))
//		marshal, _ := json.Marshal(rep_data)
//		log.Println(string(marshal))
//
//		if cast.ToString(rep_data["code"]) != "success" {
//			utils.Logfile(rep_data, "log.rizhao.log")
//		}
//	}
//}
//
//// 保存任务信息到数据库
//func saveTaskInfo(c *gin.Context, md map[string]interface{}, student *models.Student, school models.School, reason string, pdfid int64) {
//	// 获取PDF文件ID
//	pdfid, err := GetInt64(md["pdfid"])
//	if err != nil {
//		logs.ZapLogs.Error("GetInt64", zap.Error(err))
//		Response(c, 1, "没有接受到pdf文件", "") // 返回没有接受到pdf文件
//		return
//	}
//
//	// 构建任务信息
//	task := &models.Task{
//		SchoolId:    student.SchoolId,
//		StudentId:   int(student.Id),
//		Subject:     fmt.Sprint(md["subject"]),
//		PdfId:       pdfid,
//		CheckStatus: strconv.FormatFloat(cast.ToFloat64(md["valid"]), 'f', 0, 64),
//		Reason:      reason,
//	}
//
//	// 设置任务的其他字段
//	task.Validetime, _ = GetInt64(md["validtime"])
//	task.Needtime, _ = GetInt64(md["needfultime"])
//	task.Duration, _ = GetInt64(md["duration"])
//	task.TotalInvalidTime, _ = GetInt64(md["totalinvalidtime"])
//	task.Needmileage, _ = GetFloat64(md["needfulmileage"])
//	task.NeedVehicletime, _ = GetInt(md["needfulvehicletime"])
//	task.NeedNetworktime, _ = GetInt(md["needfulnetworktime"])
//	task.NeedClasstime, _ = GetInt(md["needfulclasstime"])
//	task.NeedSimulatortime, _ = GetInt(md["needfulsimulatortime"])
//	task.TransNeedFulTime, _ = GetInt(md["transNeedfultime"])
//	task.TransNeedFulvehcleTime, _ = GetInt(md["transNeedfulvehcletime"])
//	task.TransNeedFulNetWorkTime, _ = GetInt(md["transNeedfulnetworktime"])
//	task.TransNeedFulSimulatorTime, _ = GetInt(md["transNeedfulsimulatortime"])
//	task.TransNeedFulClassTime, _ = GetInt(md["transNeedfulclasstime"])
//
//	// 检查任务是否存在
//	if id, err := new(models.Task).CheckTaskExist(student.Id, fmt.Sprint(md["subject"])); err == nil {
//		task.Id = id
//		task.UpdateTime = time.Now()
//		task.CheckStatus = fmt.Sprintf("%v", md["valid"])
//		task.RecheckStatus = result_status
//		task.RecheckStatus = fmt.Sprintf("%v", md["ischeck"])
//		task.RecheckStatus = fmt.Sprintf("%v", md["islastcheck"])
//		task.RecheckStatus = result_status
//		task.Checktime = time.Now()
//
//		// 判断该记录是否上报过
//		if _, err := new(models.Reported).CheckReportedExist(student.Id, fmt.Sprint(md["subject"]), student.SchoolId); err == nil {
//			// reported表已经存在上报记录
//			if !task.Edit("pdf_id", "valid_status", "needmileage", "valid_time", "needtime", "duration", "total_invalid_time", "reason", "need_classtime", "need_networktime", "need_vehicletime", "need_simulatortime", "update_time", "check_status", "recheck_status", "checktime") {
//				logs.ZapLogs.Error("reported.Edit", zap.Error(errors.New("学时更新失败")))
//				Response(c, 1, "数据库更新失败", "") // 返回数据库更新失败
//				return
//			}
//		} else {
//			// 不存在，插入
//			if !task.Save() {
//				logs.ZapLogs.Error("reported.Edit", zap.Error(errors.New("数据添加失败")))
//				Response(c, 1, "数据添加失败", "") // 返回数据添加失败
//				return
//			}
//		}
//
//		// 删除task表数据
//		if !task.Delete() {
//			logs.ZapLogs.Error("reported.Edit", zap.Error(errors.New("数据删除失败")))
//			Response(c, 1, "数据删除失败", "") // 返回数据删除失败
//			return
//		}
//
//		fmt.Println("走的是添加")
//	} else {
//		// 复审未通过，保留task表数据并更新需补学时、需补里程等字段
//		task.Isreport = "0"
//		if !task.Edit("pdf_id", "isreport", "valid_status", "needmileage", "valid_time", "needtime", "duration", "total_invalid_time", "reason", "need_classtime", "need_networktime", "need_vehicletime", "need_simulatortime", "update_time", "check_status", "recheck_status") {
//			Response(c, 1, "数据库更新失败", "") // 返回数据库更新失败
//			return
//		}
//
//		fmt.Println("走的是更新")
//	}
//
//	Response(c, 0, "查询审核结果成功", nil) // 返回查询审核结果成功
//}
